package despachador.pagina;

import gestores.pagina.GestorPrincipal;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.*;
import javax.servlet.http.*;
import util.FuncionServlets;

public class Principal extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=windows-1252";

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }
    
    public void processRequest(HttpServletRequest request,
                               HttpServletResponse response) throws ServletException, IOException {
        
        // Guardar los parametros para el boton "volver"
        FuncionServlets.obtenerParametros(request, response, true);
        
        String url = "/micrositios/" + (String) request.getAttribute("nomMicro");
        
        // Especificamos que pagina se coloca en cada parte del layout
        request.setAttribute("1", url + "/encabezado.jsp");
        request.setAttribute("2", url + "/destacado.jsp");
        request.setAttribute("3", url + "/buscador.jsp");
        request.setAttribute("4", "/vistas/pagina/menuizq.jsp");
        request.setAttribute("5", url + "/bannerizq.jsp");
        
        // Obtenemos la categoria que se desea mostrar
        String codCategoria = request.getParameter("cat");
        
        // Determinamos el valor de la categoria a mostrar y si es lista o index
        if (codCategoria == null){
            // Se muestra la pagina principal
            codCategoria = "-1";
            
            if ((request.getParameter("buscador") == null) &&
                    (request.getParameter("buscadorAvanzado") == null)){                
                request.setAttribute("6", "/vistas/pagina/principal.jsp");
            }else{
                request.setAttribute("6", "/vistas/pagina/lista.jsp");
            }
        }else{
            // Determinamos el valor de la categoria seleccionada
            String[] arrCategoria = ((String) request.getParameter("cat")).split(":");
            codCategoria = arrCategoria[arrCategoria.length - 1];
            
            // Verificamos si tenemos que mostrar la pagina principal o una lista
            if (GestorPrincipal.hayArticulosConCategoria(codCategoria) == false && 
                    request.getParameter("buscador") == null){
                request.setAttribute("6", "/vistas/pagina/principal.jsp");
            }else{
                request.setAttribute("6", "/vistas/pagina/lista.jsp");
            }
        }
        
        // Cargamos la categoria a mostrar o listar
        request.setAttribute("codCategoria", codCategoria);
        
        request.setAttribute("7", "/vistas/pagina/visitados.jsp");
        request.setAttribute("8", "/vistas/pagina/login.jsp");
        request.setAttribute("9", "/vistas/pagina/rss.jsp");
        request.setAttribute("11", "/vistas/pagina/marcas.jsp");
        request.setAttribute("10", url + "/pie.jsp");
        
        dispatch(request, response, "/compositor/pagina/nuevecuerpos.jsp");
    }

    public void doGet(HttpServletRequest request, 
                      HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

    public void doPost(HttpServletRequest request, 
                       HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /**
     * dispatcher method
     */
    protected void dispatch(HttpServletRequest request,
            HttpServletResponse response, String page) 
            throws javax.servlet.ServletException, 
            java.io.IOException {
        RequestDispatcher dispatcher = 
            getServletContext(). 
            getRequestDispatcher(page);
        dispatcher.forward(request, response);
    }

}
